//引入下载好的express框架
const express = require('express');
//引入下载好的路径处理模块
const path = require('path');
//引入系统模块fs
const fs = require('fs');
//创建网站服务器
const app = express();
//下引入下载好的body-parser模块用于处理post请求
const bodyParser = require('body-parser');
//引入下载好的生成token的库
const jwt = require('jsonwebtoken'); 
//处理静态资源
app.use(express.static(path.join(__dirname, 'public')));
//拦截请求并处理字符串类型的post请求
app.use(bodyParser.urlencoded({ extended: false }));
//拦截请求并处理json类型的post请求
app.use(bodyParser.json({ extended: false }));
app.all('*',(req, res, next) => {
    //允许客户端访问我  允许所有的客户端访问我  允许携带cookie信息后这里就不能为*号了
    // res.header('Access-Control-Allow-Origin', 'http://localhost:8080')
    res.header('Access-Control-Allow-Origin', '*'); 
    //允许那些客户端方式访问我
    res.header('Access-Control-Allow-Methods', 'GET,POST,PUT,DELETE,OPTIONS');
    res.header("Access-Control-Allow-Headers", "X-Requested-With,X_Requested_With,Content-Type");
    res.header("Content-Type", "application/json;charset=utf-8");
    //允许客户端发送跨域请求时携带cookie信息
    // res.header('Access-Control-Allow-Credentials', true);
    next();
})
//判断是否是登录状态
app.post('/login', (req, res,next) => {
    const { userName, password } = req.body
    // 这个登录只设置了一个默认的账号和密码 账号为:admin 密码为:123456
    if(!userName || !password || userName!=='admin' || password!==123456){
         res.status(400).send({
            code:400,
             mes:'账号或者密码有误',
             data:{}
         })
    }else{
        res.status(200).send({
            code:200,
            mes:'登录成功',
            data:{
                //生成token并返回 第一个参数表示要加密的数据 第二个是一个自定义字符串用户解密是使用 第三个是配置比如过期时间等
                token:jwt.sign({name:userName},'abc',{
                    expiresIn:60 //过期时间60秒
                })
            }
        })
    }
});
app.get('/demo',(req,res,next)=>{
    res.send('你成功了')
})
//监听端口
app.listen(3000);
console.log('正在监听3000端口');
